package com.fileupload.utils;

/**
 * 文件路径工具类
 * 提供路径处理的通用功能
 */
public class PathUtils {
    
    /**
     * 移除Windows路径中的盘符部分
     * 例如：C:/path/to/dir -> /path/to/dir
     * 
     * @param path 原始路径
     * @return 移除盘符后的路径
     */
    public static String removeDriveLetter(String path) {
        if (path == null || path.isEmpty()) {
            return path;
        }
        // 匹配Windows盘符格式（如 C:\ 或 c:/）
        if (path.length() >= 2 && Character.isLetter(path.charAt(0)) &&
                (path.charAt(1) == ':' || path.charAt(1) == '：')) {
            // 检查是否有第三个字符且是斜杠或反斜杠
            if (path.length() >= 3 && (path.charAt(2) == '/' || path.charAt(2) == '\\')) {
                // 如果有斜杠，从第三个字符（索引2）开始截取，保留斜杠
                return path.substring(2);
            } else {
                // 如果没有斜杠，从第二个字符（索引2）开始截取，并添加前导斜杠
                String remainingPath = path.substring(2);
                return remainingPath.isEmpty() ? "/" : "/" + remainingPath;
            }
        }
        // 如果已经是相对路径但不以斜杠开头，添加前导斜杠
        if (!path.startsWith("/")) {
            return "/" + path;
        }
        return path;
    }
    
    /**
     * 规范化路径，统一使用正斜杠
     * 
     * @param path 原始路径
     * @return 规范化后的路径
     */
    public static String normalizePath(String path) {
        if (path == null) {
            return null;
        }
        // 统一使用正斜杠作为分隔符
        return path.replace('\\', '/');
    }
}